#pragma once

#include "scr_mouse.h"
#include "scr_keyboard.h"

class SCRGame;

class SCRGameState
{
public:

	SCRGameState();
	virtual ~SCRGameState();
	virtual void OnInitialize();
	virtual void OnTerminate();
	virtual void OnUpdate(const int& Delta) = 0;
	virtual void OnRender(const int& Delta);
	virtual void OnMouseClick(const int& X, const int& Y, const SCRMouseButton::Enum& Button);
	virtual void OnMouseRelease(const int& X, const int& Y, const SCRMouseButton::Enum& Button);
	virtual void OnMouseMove(const int& X, const int& Y);
	virtual void OnKeyClick(const int& Key);
	virtual void OnKeyRelease(const int& Key);

protected:

	SCRGame* const m_pGame;
};
